home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / misc / utilitys / sun.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  2.3 KB  |  56 lines

  1. 10  PRINT," SUN TRACKING PROGRAM 9/27/83
  2. 12  PRINT,"k2uyh ---- modified for ibm pc ---- wa2tif":PRINT
  3. 15  PI=3.1416
  4. 20  TW=2*PI: RP=TW/360
  5. 30  DEF FNS(X)=ATN(X/SQR(1-X^2))
  6. 40  DEF FNC(X)=PI/2-ATN(X/SQR(1-X^2))
  7. 50  DEF FNI(X)=INT(0.5+X)
  8. 60  DEF FNR(X)=X-TW*INT(X/TW)
  9. 70  FOR J=1 TO 24: PRINT: NEXT
  10. 80  PRINT "        *****************************"
  11. 90  PRINT "        *                           *"
  12. 100  PRINT "        *     SUN TRACKING V1.1     *"
  13. 110  PRINT "        *                           *"
  14. 120  PRINT "        *****************************": PRINT: PRINT
  15. 125  PRINT: PRINT: PRINT: PRINT
  16. 130  PRINT: INPUT "CALL SIGN"; CL$: IF CL$<>"K2UYH" THEN 150
  17. 140  DO=74: MO=46: DA=40: MA=16: GOTO 170
  18. 150  INPUT "LATITUDE IN DEG, MIN"; DA, MA
  19. 160  INPUT "LONGITUDE IN DEG, MIN"; DO, MO
  20. 170  R1=RP*(DO+MO/60): R2=RP*(DA+MA/60): PRINT
  21. 175  INPUT "DO YOU WANT HARD COPY (Y/N)"; P$: PRINT
  22. 180  INPUT "BEGINNING DATE (MM,DD,YYY)"; M,D,Y
  23. 190  INPUT "HOUR"; H: IF H<0 OR H>24 THEN 190 ELSE YR=Y-1900
  24. 200  JD=365*YR+INT(YR/4)+INT(30.55*(M+2))-2*INT((M+7)/10)+D-93
  25. 210  H=INT(H): IF YR-4*INT(YR/4)>0.5 OR M>=3 THEN JD=JD+1
  26. 220  T0=(JD-29219)*1440: SN=SIN(0.409138-0*T0)
  27. 230  PRINT: PRINT: PRINT "SOLAR AZIMUTH AND ELEVATION DATA FOR "; CL$
  28. 240  PRINT: PRINT "DATE = "; M; "/"; D; "/"; Y
  29. 250  PRINT "TIME", "AZIMUTH", "ELEVATION", "GHA", "DEC"
  30. 251  IF P$<>"Y" THEN 260 ELSE LPRINT: LPRINT: LPRINT
  31. 252  LPRINT,: LPRINT,: LPRINT, "SOLAR AZIMUTH AND ELEVATION DATA FOR "; CL$
  32. 253  LPRINT,: LPRINT, "DATE = "; M; "/"; D; "/"; Y
  33. 254  LPRINT, "TIME", "AZIMUTH", "ELEVATION", "GHA", "DEC"
  34. 260  FOR I=0 TO 55 STEP 5: GT=I+60*H: T=T0+GT
  35. 270  IF 15*INT(I/15)=I THEN PRINT: LM=4.88367+1.1945E-05*T
  36. 280  G=6.23471+1.1945E-05*T: GS=GT+399.254+0.00273792*T
  37. 290  TI=100*H+I: C1=FNR(LM): C1=C1+(0.0334339-0*T)*SIN(G)
  38. 300  C1=C1+(0.000349303-0*T)*SIN(2*G)
  39. 310  DE=FNS(SN*SIN(C1)): RA=COS(C1)/COS(DE)
  40. 320  IF ABS(RA)=1 THEN RA=(1-SGN(RA))*PI/2): GOTO 350
  41. 330  RA=FNC(RA)
  42. 340  IF SIN(C1)<0 THEN RA=-RA
  43. 350  GH=GS*TW/1440-RA: GH=FNR(GH): LH=GH-R1
  44. 360  EL=FNS(COS(R2)*COS(LH)*COS(DE)+SIN(R2)*SIN(DE))
  45. 365  IF EL<0 THEN PRINT TI, "*", "*", FNI(GH/RP), FNI(DE/RP): IF P$<>"Y" THEN 420
  46. 370  IF EL<0 THEN PRINT#2, TI, "*", "*", FNI(GH/RP), FNI(DE/RP): GOTO 420
  47. 380  AZ=(COS(R2)*SIN(DE)-SIN(R2)*COS(LH)*COS(DE))/COS(EL)
  48. 390  IF ABS(AZ)>=1 THEN AZ=(1-SGN(AZ))*PI/2: GOTO 410
  49. 400  AZ=FNC(AZ): IF SIN(LH)>0 THEN AZ=TW-AZ
  50. 410  PRINT TI, FNI(AZ/RP), FNI(EL/RP), FNI(GH/RP), FNI(DE/RP)
  51. 415  IF P$="Y" THEN LPRINT, TI, FNI(AZ/RP), FNI(EL/RP), FNI(GH/RP), FNI(DE/RP)
  52. 420  NEXT: PRINT: IF P$="Y" THEN LPRINT
  53. 430  INPUT "WANT TO END, NEXT HOUR (NX), NEW DAY (ND), NEW HOUR (NH)"; Q$
  54. 440  IF Q$="END" THEN END ELSE IF Q$="ND" THEN 180 ELSE IF Q$="NH" THEN 190 ELSE IF Q$="NX" THEN 450 ELSE 430
  55. 450  PRINT: H=H+1: GOTO 260
  56.